package com.aspose.cells;

class zya {
   private zxx a;
   private short b;
   private int c = 7;
   private zj d;
   private zj e;
   private boolean f = true;
   private boolean g = false;
   private boolean h = false;
   private int i = -1;

   public zya(zxx var1) {
      this.a = var1;
      this.b = var1.e();
   }

   private void a() {
      this.c = 7;
      this.f = true;
      this.g = false;
      this.h = false;
      this.i = -1;
      this.d = null;
      this.e = null;
   }

   public zafy a(String var1, boolean var2) {
      zhh var3 = this.b();
      if (var1.length() == 1) {
         switch(var1.charAt(0)) {
         case '#':
         case '0':
            return new zbmn(var3, var1);
         case '@':
            return new zht(var3, var1);
         case 'D':
         case 'H':
         case 'M':
         case 'S':
         case 'Y':
         case 'd':
         case 'h':
         case 'm':
         case 's':
         case 'y':
            return new zbmq(var3, var1);
         }
      }

      char var4;
      if (this.a.f().b()) {
         var4 = com.aspose.cells.a.a.za.a(this.a.a());
      } else {
         var4 = this.a.f().d();
      }

      char var5;
      if (this.a.f().c()) {
         var5 = com.aspose.cells.a.a.za.b(this.a.a());
      } else {
         var5 = this.a.f().e();
      }

      char[] var6 = var1.toCharArray();
      Object var7 = null;
      zafy[] var8 = new zafy[4];
      zxy[] var9 = new zxy[4];
      int var10 = 0;
      StringBuilder var11 = new StringBuilder(var6.length);
      int var12 = 0;
      int var13 = 0;

      while(true) {
         label514:
         do {
            int var15;
            int var23;
            Object var25;
            label510:
            while(var13 < var6.length) {
               label505:
               switch(var6[var13]) {
               case '"':
                  ++var13;
                  if (var6[var13] == '"') {
                     ++var13;
                     continue;
                  }

                  var11.append('"');

                  while(true) {
                     if (var13 >= var6.length) {
                        continue label510;
                     }

                     var11.append(var6[var13]);
                     if (var6[var13] == '"') {
                        ++var13;
                        continue label510;
                     }

                     if (this.f && (var6[var13] == var4 || this.a.f().c() && var6[var13] == var5)) {
                        this.f = false;
                     }

                     ++var13;
                  }
               case '#':
               case '0':
                  switch(this.c) {
                  case 2:
                     this.f = false;
                     break label505;
                  case 4:
                     this.h = true;
                     break label505;
                  case 7:
                     this.c = 2;
                     if (this.f) {
                        boolean var26 = var13 == 0;
                        boolean var22 = true;
                        boolean var24 = true;
                        boolean var17 = false;
                        if (var6[var13] == '0') {
                           if (this.i > -1) {
                              var24 = false;
                           } else {
                              var22 = false;
                              var17 = true;
                           }
                        } else if (this.i > -1) {
                           var17 = true;
                        }

                        var11.append(var6[var13]);
                        ++var13;

                        label486:
                        while(var13 < var6.length) {
                           switch(var6[var13]) {
                           case '#':
                              if (this.i > -1) {
                                 var17 = true;
                              } else if (var17) {
                                 this.f = false;
                              }

                              var11.append(var6[var13]);
                              ++var13;
                              break;
                           case ',':
                              var11.append(var6[var13]);
                              ++var13;
                              break;
                           case '.':
                              if (this.i > -1) {
                                 this.f = false;
                              } else {
                                 this.i = var11.length();
                                 var17 = false;
                              }

                              var11.append(var6[var13]);
                              ++var13;
                              break;
                           case '0':
                              if (this.i > -1) {
                                 var24 = false;
                                 if (var17) {
                                    this.f = false;
                                 }
                              } else {
                                 var17 = true;
                                 var22 = false;
                              }

                              var11.append(var6[var13]);
                              ++var13;
                              break;
                           default:
                              break label486;
                           }
                        }

                        if (this.f && (var22 || this.i > -1 && var24) && (!var26 || var13 < var6.length)) {
                           this.f = false;
                        }
                        continue;
                     }
                  default:
                     break label505;
                  }
               case '$':
               case '&':
               case '\'':
               case '(':
               case ')':
               case '+':
               case ',':
               case '-':
               case '1':
               case '2':
               case '3':
               case '4':
               case '5':
               case '6':
               case '7':
               case '8':
               case '9':
               case ':':
               case '<':
               case '=':
               case '>':
               case 'B':
               case 'C':
               case 'F':
               case 'I':
               case 'J':
               case 'K':
               case 'L':
               case 'N':
               case 'O':
               case 'P':
               case 'Q':
               case 'R':
               case 'T':
               case 'U':
               case 'V':
               case 'W':
               case 'X':
               case 'Z':
               case ']':
               case '^':
               case '`':
               case 'b':
               case 'c':
               case 'f':
               case 'i':
               case 'j':
               case 'k':
               case 'l':
               case 'n':
               case 'o':
               case 'p':
               case 'q':
               case 'r':
               case 't':
               case 'u':
               case 'v':
               case 'w':
               case 'x':
               default:
                  if (!this.h && this.c == 4 && var6[var13] >= '0' && var6[var13] <= '9') {
                     this.h = true;
                  }
                  break;
               case '%':
                  this.f = false;
                  break;
               case '*':
               case '_':
                  this.f = false;
                  var11.append(var6[var13]);
                  ++var13;
                  break;
               case '.':
                  if (this.i > -1) {
                     this.f = false;
                  } else {
                     this.i = var11.length();
                  }
                  break;
               case '/':
                  if (this.c == 2) {
                     this.c = 4;
                  } else if (var13 > 1 && var13 + 2 < var6.length && var6[var13 - 2] == zml.b[0] && var6[var13 - 1] == zml.b[1] && var6[var13 + 1] == zml.c[0] && var6[var13 + 2] == zml.c[1]) {
                     this.c = 3;
                     this.f = false;
                  }
                  break;
               case ';':
                  var3.a(new String(var6, var12, var13 - var12));
                  var7 = null;
                  if (this.a.m() != null) {
                     var25 = this.a.m().get(var3.a());
                     if (var25 != null) {
                        var7 = (zafy)var25;
                     }
                  }

                  if (var7 == null) {
                     var7 = this.a(com.aspose.cells.b.a.zr.a(var11), var3);
                     if (var2) {
                        this.a.m().put(var3.a(), var7);
                     }
                  }

                  var11.setLength(0);
                  var3 = this.b();
                  this.a();
                  var8[var10] = (zafy)var7;
                  ++var10;
                  if (var10 >= var8.length) {
                     var13 = var6.length;
                  } else {
                     ++var13;
                     var12 = var13;
                  }
                  continue;
               case '?':
                  switch(this.c) {
                  case 4:
                     this.h = true;
                     break label505;
                  case 7:
                     this.c = 2;
                     this.f = false;
                  default:
                     break label505;
                  }
               case '@':
                  this.c = 1;
                  break;
               case 'A':
               case 'a':
                  var11.append(var6[var13]);
                  ++var13;
                  if (var13 < var6.length) {
                     switch(var6[var13]) {
                     case '/':
                        var11.append('/');
                        ++var13;
                        if (var13 < var6.length && (var6[var13] | 32) == 112) {
                           this.c = 3;
                           this.f = false;
                           var11.append(var6[var13]);
                           ++var13;
                        }
                        continue;
                     case 'A':
                     case 'a':
                        var11.append(var6[var13]);
                        ++var13;
                        if (var13 >= var6.length || (var6[var13] | 32) != 97) {
                           continue;
                        }

                        this.c = 3;
                        this.f = false;
                        ++var13;
                        if (var13 < var6.length && (var6[var13] | 32) == 97) {
                           var11.append("aa");
                           ++var13;

                           while(true) {
                              if (var13 >= var6.length || (var6[var13] | 32) != 97) {
                                 continue label510;
                              }

                              ++var13;
                           }
                        }

                        var11.append("a");
                        continue;
                     case 'M':
                     case 'm':
                        if (var13 + 3 < var6.length && var6[var13 + 1] == '/' && (var6[var13 + 2] | 32) == 112 && (var6[var13 + 3] | 32) == 109) {
                           this.c = 3;
                           this.f = false;
                           var11.append(var6, var13, 4);
                           var13 += 4;
                        }
                     default:
                        continue;
                     }
                  }

                  var11.append(var6[var13 - 1]);
                  continue;
               case 'D':
               case 'd':
                  ++var13;
                  if (this.c == 7) {
                     this.c = 3;
                  }

                  if (var13 < var6.length) {
                     if ((var6[var13] | 32) == 100) {
                        ++var13;
                        if (var13 < var6.length && (var6[var13] | 32) == 100) {
                           this.c = 3;
                           this.f = false;
                           ++var13;
                           if (var13 < var6.length && (var6[var13] | 32) == 100) {
                              var11.append("aaaa");
                              ++var13;

                              while(true) {
                                 if (var13 >= var6.length || (var6[var13] | 32) != 100) {
                                    continue label510;
                                 }

                                 ++var13;
                              }
                           }

                           var11.append("aaa");
                           continue;
                        }

                        var11.append(var6, var13 - 2, 2);
                        continue;
                     }

                     var11.append(var6[var13 - 1]);
                     continue;
                  }

                  var11.append(var6[var13 - 1]);
                  continue;
               case 'E':
               case 'e':
                  if (this.c == 2) {
                     this.c = 5;
                  } else if (this.i < 0) {
                     this.c = 3;
                     var11.append(var6[var13]);
                  }
                  break;
               case 'G':
               case 'g':
                  if (zyc.a(var6, var13, var6.length)) {
                     if (!this.g) {
                        if (var11.length() > 0) {
                           this.d = this.a(com.aspose.cells.b.a.zr.a(var11), var3);
                           var11.setLength(0);
                        }

                        this.c = 7;
                        this.g = true;
                     }

                     var13 += 7;
                     continue;
                  }

                  for(var23 = var13++; var13 < var6.length && (var6[var13] | 32) == 103; ++var13) {
                     ;
                  }

                  this.c = 3;
                  short var21 = var3.d();
                  if (var21 == 0) {
                     var21 = this.b;
                  }

                  var11.append(com.aspose.cells.a.c.zk.a(var13 - var23, var21));

                  while(true) {
                     if (var13 >= var6.length || (var6[var13] | 32) != 101) {
                        continue label510;
                     }

                     var11.append('y');
                     ++var13;
                  }
               case 'H':
               case 'Y':
               case 'h':
               case 'y':
                  if (this.c == 7) {
                     this.c = 3;
                  }
                  break;
               case 'M':
               case 'm':
                  if (this.c == 7) {
                     this.c = 3;
                  }

                  var11.append(var6[var13]);
                  ++var13;
                  if (!this.f) {
                     continue;
                  }

                  for(var23 = 1; var13 < var6.length && (var6[var13] | 32) == 109; ++var23) {
                     var11.append(var6[var13]);
                     ++var13;
                  }

                  if (var23 == 5) {
                     this.f = false;
                  }
                  continue;
               case 'S':
               case 's':
                  if (this.c == 7) {
                     this.c = 3;
                  }

                  var11.append(var6[var13]);
                  ++var13;

                  while(true) {
                     if (var13 >= var6.length) {
                        continue label510;
                     }

                     switch(var6[var13]) {
                     case ' ':
                     case 'S':
                     case 's':
                        var11.append(var6[var13]);
                        ++var13;
                        break;
                     case '.':
                        var11.append(var6[var13]);
                        ++var13;

                        while(var13 < var6.length && var6[var13] == '0') {
                           this.f = false;
                           ++var13;
                           var11.append('0');
                        }
                     default:
                        continue label510;
                     }
                  }
               case '[':
                  ++var13;
                  if (var13 >= var6.length) {
                     continue;
                  }

                  byte var14 = 6;
                  switch(var6[var13]) {
                  case '<':
                     ++var13;
                     if (var13 < var6.length) {
                        switch(var6[var13]) {
                        case '=':
                           var14 = 5;
                           ++var13;
                           break;
                        case '>':
                           var14 = 8;
                           ++var13;
                           break;
                        default:
                           var14 = 4;
                        }
                     }
                     break;
                  case '=':
                     var14 = 1;
                     ++var13;
                     break;
                  case '>':
                     ++var13;
                     if (var13 < var6.length) {
                        if (var6[var13] == '=') {
                           var14 = 3;
                           ++var13;
                        } else {
                           var14 = 2;
                        }
                     }
                     break;
                  case 'H':
                  case 'M':
                  case 'S':
                  case 'h':
                  case 'm':
                  case 's':
                     this.c = 3;
                     this.f = false;
                     var11.append('[');
                     var11.append(var6[var13]);
                     ++var13;
                     continue;
                  default:
                     var13 = var3.a(var6, var13, var6.length, var11, false);
                     switch(var3.d()) {
                     case -3072:
                     case -2048:
                        this.c = 3;
                     default:
                        continue;
                     }
                  }

                  var15 = var13;

                  double var16;
                  for(var16 = 0.0D; var13 < var6.length; ++var13) {
                     if (var6[var13] == ']') {
                        try {
                           var16 = com.aspose.cells.a.c.zm.a((new String(var6, var15, var13 - var15)).trim());
                        } catch (Exception var19) {
                           ;
                        }

                        ++var13;
                        break;
                     }
                  }

                  var9[var10] = new zxy(var14, var16);
                  continue;
               case '\\':
                  var11.append('\\');
                  ++var13;
                  continue label514;
               }

               var11.append(var6[var13]);
               ++var13;
            }

            if (var10 < var8.length) {
               var3.a(var10 == 0 ? var1 : new String(var6, var12, var13 - var12));
               var7 = null;
               if (this.a.m() != null) {
                  var25 = this.a.m().get(var3.a());
                  if (var25 != null) {
                     var7 = (zafy)var25;
                  }
               }

               if (var7 == null) {
                  var7 = this.a(com.aspose.cells.b.a.zr.a(var11), var3);
                  if (var2) {
                     this.a.m().put(var3.a(), var7);
                  }
               }

               var8[var10] = (zafy)var7;
               ++var10;
            }

            if (var10 > 1) {
               var23 = -1;
               var15 = 0;

               for(int var27 = 0; var27 < var10; ++var27) {
                  if (var9[var27] == null) {
                     var23 = var27;
                     ++var15;
                  }
               }

               zafy var20 = null;
               zafy[] var28;
               zxy[] var29;
               if (var15 == 0) {
                  if (var10 < var8.length) {
                     var28 = new zafy[var10];
                     var29 = new zxy[var10];
                     System.arraycopy(var8, 0, var28, 0, var10);
                     System.arraycopy(var9, 0, var29, 0, var10);
                     var8 = var28;
                     var9 = var29;
                  }
               } else if (var15 == 1) {
                  var20 = var8[var23];
                  var28 = new zafy[var10 - 1];
                  var29 = new zxy[var10 - 1];
                  if (var23 > 0) {
                     System.arraycopy(var8, 0, var28, 0, var23);
                     System.arraycopy(var9, 0, var29, 0, var23);
                  }

                  if (var23 < var10 - 1) {
                     System.arraycopy(var8, var23 + 1, var28, var23, var10 - var23 - 1);
                     System.arraycopy(var9, var23 + 1, var29, var23, var10 - var23 - 1);
                  }

                  var8 = var28;
                  var9 = var29;
               } else {
                  switch(var10) {
                  case 2:
                     if (var8[1].a() == 1 && !((zht)var8[1]).e()) {
                        var20 = var8[1];
                        var8 = new zafy[]{var8[0]};
                        var9 = new zxy[]{new zxy(6, 0.0D)};
                        break;
                     }

                     var8 = new zafy[]{var8[0], var8[1]};
                     var9 = new zxy[]{new zxy(3, 0.0D), new zxy(4, 0.0D)};
                     break;
                  case 3:
                     if (var8[2].a() == 1 && !((zht)var8[2]).e()) {
                        var20 = var8[2];
                        var8 = new zafy[]{var8[0], var8[1]};
                        var9 = new zxy[]{new zxy(3, 0.0D), new zxy(4, 0.0D)};
                        break;
                     }

                     if (var8.length > 3) {
                        var8 = new zafy[]{var8[0], var8[1], var8[2]};
                     }

                     var9 = new zxy[]{new zxy(2, 0.0D), new zxy(4, 0.0D), new zxy(1, 0.0D)};
                     break;
                  case 4:
                     var20 = var8[3];
                     var9 = new zxy[]{new zxy(2, 0.0D), new zxy(4, 0.0D), new zxy(1, 0.0D)};
                     var8 = new zafy[]{var8[0], var8[1], var8[2]};
                  }
               }

               var3 = this.b();
               var3.a(var1);
               var7 = new zyb(var3, var8, var9, var20);
               if (var2) {
                  this.a.m().put(var1, var7);
               }
            }

            return (zafy)var7;
         } while(var13 >= var6.length);

         if (this.f && (var6[var13] == var4 || this.a.f().c() && var6[var13] == var5)) {
            this.f = false;
         }

         var11.append(var6[var13]);
         ++var13;
      }
   }

   private zhh b() {
      zhh var1 = new zhh();
      var1.a(this.a);
      return var1;
   }

   private zj a(String var1, zhh var2) {
      switch(var2.d()) {
      case -3072:
      case -2048:
         return new zbmm(var2, var1, false, 0);
      default:
         if (this.g) {
            if (var1.length() > 0) {
               this.g = false;
               this.e = this.a(var1, var2);
            } else if (this.d == null && com.aspose.cells.b.a.zr.a(Color.getEmpty(), var2.c())) {
               return this.a.k();
            }

            return new zhj(var2, this.d, this.e);
         } else {
            if (this.i > -1 && this.c == 7) {
               this.c = 2;
            }

            switch(this.c) {
            case 2:
               if (this.f && this.i > -1) {
                  if (this.i != 0 && this.i != var1.length() - 1) {
                     if (!this.a(var1.charAt(this.i - 1))) {
                        this.f = false;
                     } else if (!this.a(var1.charAt(this.i + 1))) {
                        this.f = false;
                     }
                  } else {
                     this.f = false;
                  }
               }

               return (zj)(this.f ? new zbmn(var2, var1) : new zlu(var2, var1));
            case 3:
               if (this.f) {
                  char[] var3 = var1.toCharArray();
                  if (zj.a(var3, 0, var3.length, 'h', 'H')) {
                     var1 = new String(var3);
                  }

                  return new zbmm(var2, var1, true, 0);
               }

               return new zlt(var2, var1);
            case 4:
               if (this.h) {
                  return new zhi(var2, var1);
               } else {
                  if (this.f) {
                     return new zbmn(var2, var1);
                  }

                  return new zlu(var2, var1);
               }
            case 5:
               return new zhq(var2, var1);
            default:
               return new zht(var2, var1);
            }
         }
      }
   }

   private boolean a(char var1) {
      return var1 == '0' || var1 == '#';
   }
}
